package com.sx.gongzhong.net;

import com.sx.gongzhong.model.BannerBean;
import com.sx.gongzhong.model.BasePageListBean;
import com.sx.gongzhong.model.CheckInBean;
import com.sx.gongzhong.model.CheckRecords;
import com.sx.gongzhong.model.CommentBean;
import com.sx.gongzhong.model.ConvenniceAppealBean;
import com.sx.gongzhong.model.DefendRoadBean;
import com.sx.gongzhong.model.ExposureBean;
import com.sx.gongzhong.model.ExposureDetailBean;
import com.sx.gongzhong.model.HelpBean;
import com.sx.gongzhong.model.IntegralBean;
import com.sx.gongzhong.model.LegalAdviceBean;
import com.sx.gongzhong.model.LegalAdviceTypeBean;
import com.sx.gongzhong.model.LetterBean;
import com.sx.gongzhong.model.MessageBean;
import com.sx.gongzhong.model.PhotoBean;
import com.sx.gongzhong.model.PublicBean;
import com.sx.gongzhong.model.PublicTotalBean;
import com.sx.gongzhong.model.ReplyUserBean;
import com.sx.gongzhong.model.SplashBean;
import com.sx.gongzhong.model.UserInfoBean;
import com.sx.gongzhong.model.VersionBean;
import com.sx.gongzhong.model.WebListItemBean;

import java.util.List;
import java.util.Map;

import okhttp3.MultipartBody;
import retrofit2.Call;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.QueryMap;
import retrofit2.http.Url;


/**
 * Created by XZY on 2017/11/30.
 * api 接口定义
 */

public interface ApiManagerService {
    /**
     * 检测更新
     */
    @GET("/api/appManage/appVersionManage/getNew")
    Call<ReplyUserBean.BaseResult<VersionBean>> getVersionMessage(@QueryMap Map<String, Object> map);
    /**
     * 多个文件上传
     */
    @Multipart
    @POST("/api/sys/fileStorage/uploadBatch")
    Call<ReplyUserBean.BaseResult<List<PhotoBean>>> upLoadMultiFile(@QueryMap Map<String, Object> map,
                                                                    @Part List<MultipartBody.Part> files);
    /**
     * 获取所有字典项
     */
    @GET("/api/sys/propertyDict/findAllPropertyDict")
    Call<ReplyUserBean.BaseResult<List<PublicTotalBean>>> getPublicBean();

    /**
     * 获取子类字典列表
     */
    @GET("/api/sys/propertyDict/findByParentCode")
    Call<ReplyUserBean.BaseResult<List<PublicBean>>> getPublicList(@QueryMap Map<String, Object> map);
    /**
     * 获取验证码
     */
    @GET()
    Call<ReplyUserBean.BaseResult<Boolean>> getVerifyCode(@Url String url, @QueryMap Map<String, Object> map);
    /**
     * 校验验证码
     */
    @GET()
    Call<ReplyUserBean.BaseResult<String>> checkVerifyCode(@Url String url, @QueryMap Map<String, Object> map);
    /**
     * 注册
     */
    @POST("/api/sys/authority/register")
    Call<ReplyUserBean.BaseResult<Void>> register(@QueryMap Map<String, Object> map);
    /**
     * 登录
     */
    @POST("/api/sys/authority/appLogin")
    Call<ReplyUserBean.BaseResult<UserInfoBean>> login(@QueryMap Map<String, Object> map);
    /**
     * 修改用户信息
     */
    @POST("/api/sys/authority/updateUserBaseInfo")
    Call<ReplyUserBean.BaseResult<Void>> updateUserInfo(@QueryMap Map<String, Object> map);
    /**
     * 用户忘记密码
     */
    @POST("/api/sys/authority/forgetUserPwd")
    Call<ReplyUserBean.BaseResult<Boolean>> forgetpwd(@QueryMap Map<String, Object> map);
    /**
     * 用户修改密码
     */
    @POST("/api/sys/authority/updateUserPwd")
    Call<ReplyUserBean.BaseResult<Boolean>> updatePassword(@QueryMap Map<String, Object> map);
    /**
     * 修改手机号
     */
    @POST("/api/sys/authority/updateUserMobilePhone")
    Call<ReplyUserBean.BaseResult<Void>> updatePhone(@QueryMap Map<String, Object> map);
    /**
     * 首页banner
     */
    @GET("/api/columnManage/carousel/list")
    Call<ReplyUserBean.BaseResult<List<BannerBean>>> getBanner(@QueryMap Map<String, Object> map);
    /**获取便民公告
     */
    @GET("/api/columnManage/convenientNotice/list")
    Call<ReplyUserBean.BaseResult<BasePageListBean<WebListItemBean>>> getConvenniceAnnounceData(@QueryMap Map<String, Object> map);
    /**
     * 办事指南
     */
    @GET("/api/columnManage/handleGuide/list")
    Call<ReplyUserBean.BaseResult<BasePageListBean<WebListItemBean>>> getGuidanceData(@QueryMap Map<String, Object> map);
    /**
     * 获取平安宣传
     */
    @GET("/api/columnManage/safePublicity/list")
    Call<ReplyUserBean.BaseResult<BasePageListBean<WebListItemBean>>> getPromotePeaceData(@QueryMap Map<String, Object> map);
    /**
     *新增爆料
     */
    @POST("/api/columnManage/brokeNews/add")
    Call<ReplyUserBean.BaseResult<Void>> addExposure(@QueryMap Map<String, Object> map);
    /**
     *删除爆料
     */
    @DELETE("/api/columnManage/brokeNews/delete")
    Call<ReplyUserBean.BaseResult<Boolean>> deleteExposure(@QueryMap Map<String, Object> map);
    /**
     * 爆料点赞
     */
    @POST("/api/columnManage/brokeNews/addPraiseTimes")
    Call<ReplyUserBean.BaseResult<Integer>> praiseExposure(@QueryMap Map<String, Object> map);
    /**
     * 爆料回复列表
     */
    @GET("/api/columnManage/brokeNews/findReplyPageByDataId")
    Call<ReplyUserBean.BaseResult<BasePageListBean<CommentBean>>> replyExposureList(@QueryMap Map<String, Object> map);
    /**
     * 爆料回复
     */
    @POST("/api/columnManage/brokeNews/addReply")
    Call<ReplyUserBean.BaseResult<Void>> replyExposure(@QueryMap Map<String, Object> map);
    /**
     * 爆料回复删除
     */
    @DELETE("/api/columnManage/brokeNews/deleteReplyById")
    Call<ReplyUserBean.BaseResult<Boolean>> replyExposureDelete(@QueryMap Map<String, Object> map);
    /**
     * 获取爆料列表
     */
    @GET("/api/columnManage/brokeNews/list")
    Call<ReplyUserBean.BaseResult<BasePageListBean<ExposureBean>>> loadExposureList(@QueryMap Map<String, Object> map);
    /**
     * 获取便民诉求列表
     */
    @GET("/api/columnManage/convenientAppeal/list")
    Call<ReplyUserBean.BaseResult<BasePageListBean<ConvenniceAppealBean>>> getConvenniceAppealData(@QueryMap Map<String, Object> map);
    /**
     * 获取爆料详情
     */
    @GET("/api/columnManage/brokeNews/getById")
    Call<ReplyUserBean.BaseResult<ExposureDetailBean>> loadExposureDetail(@QueryMap Map<String, Object> map);
    /**
     * 新增便民诉求
     */
    @POST("/api/columnManage/convenientAppeal/add")
    Call<ReplyUserBean.BaseResult<Void>> addConvenniceAppeal(@QueryMap Map<String, Object> map);
    /**
     * 诉求选项辖区
     */
    @GET("/api/columnManage/convenientAppeal/getSelectOrgList")
    Call<ReplyUserBean.BaseResult<List<PublicBean>>> getOrgList(@QueryMap Map<String, Object> map);
    /**
     * 便民诉求详情
     */
    @GET("/api/columnManage/convenientAppeal/getById")
    Call<ReplyUserBean.BaseResult<ConvenniceAppealBean>> getAppealDetail(@QueryMap Map<String, Object> map);
    /**
     * 便民訴求答復
     */
    @GET("/api/columnManage/convenientAppeal/findReplyPageByDataId")
    Call<ReplyUserBean.BaseResult<BasePageListBean<CommentBean>>> getAppealReplyList(@QueryMap Map<String, Object> map);
    /**
     * 便民訴求评论
     */
    @GET("/api/columnManage/convenientAppeal/findCommentPageByDataId")
    Call<ReplyUserBean.BaseResult<BasePageListBean<CommentBean>>> getAppealCommentList(@QueryMap Map<String, Object> map);
    /*** 举报
     */
    @POST("/api/columnManage/columnReportInfo/add")
    Call<ReplyUserBean.BaseResult<Void>> report(@QueryMap Map<String, Object> map);
    /*** 诉求详情点赞
     */
    @POST("/api/columnManage/convenientAppeal/addPraiseTimes")
    Call<ReplyUserBean.BaseResult<Integer>> addPraise(@QueryMap Map<String, Object> map);
    /*** 诉求详情添加评论
     */
    @POST("/api/columnManage/convenientAppeal/addComment")///api/columnManage/convenientAppeal/addAppealComment
    Call<ReplyUserBean.BaseResult<CommentBean>> addAppealComment(@QueryMap Map<String, Object> map);
    /***删除便民诉求
     */
    @DELETE("/api/columnManage/convenientAppeal/delete")
    Call<ReplyUserBean.BaseResult<Boolean>> deleteAppeal(@QueryMap Map<String, Object> map);
    /**
     * 评价便民诉求
     */
    @POST("/api/columnManage/convenientAppeal/addEvaluation")
    Call<ReplyUserBean.BaseResult<Void>> addEvaluation(@QueryMap Map<String, Object> map);
    /**
     * 添加禁言
     */
    @POST("/api/columnManage/forbidden/addColumnForbidden") //  /api/columnManage/forbidden/add
    Call<ReplyUserBean.BaseResult<Void>> addForbidden(@QueryMap Map<String, Object> map);
    /**
     * 删除评论
     */
    @DELETE()
    Call<ReplyUserBean.BaseResult<Boolean>> deleteCommon(@Url String url, @QueryMap Map<String, Object> map);
     /**
     * 添加举报
     */
    @POST("/api/columnManage/lettersAndCallsReport/add")
    Call<ReplyUserBean.BaseResult<Void>> addReport(@QueryMap Map<String, Object> map);
    /**
     * 法律咨询 列表
     */
    @GET("/api/columnManage/legalAdvice/list")
    Call<ReplyUserBean.BaseResult<BasePageListBean<LegalAdviceBean>>> getLegalAdviceListData(@QueryMap Map<String, Object> map);
    /**
     * 法律咨询 添加
     */
    @POST("/api/columnManage/legalAdvice/add")
    Call<ReplyUserBean.BaseResult<Void>> addLegalAdvice(@QueryMap Map<String, Object> map);
    /**
     * 法律咨询类型选择
     */
    @GET("/api/columnManage/advisoryType/findAllAdvisoryType")
    Call<ReplyUserBean.BaseResult<List<LegalAdviceTypeBean>>> getLegalTypeSelectListData(@QueryMap Map<String, Object> map);
    /**
     * 法律咨询 详情
     */
    @GET("/api/columnManage/legalAdvice/getById")
    Call<ReplyUserBean.BaseResult<LegalAdviceBean>> getLegalAdviceDetail(@QueryMap Map<String, Object> map);
    /**
     *法律咨询 回复列表
     */
    @GET("/api/columnManage/legalAdvice/findReplyPageByDataId")
    Call<ReplyUserBean.BaseResult<BasePageListBean<CommentBean>>> getReplayList(@QueryMap Map<String, Object> map);
    /**
     * 法律咨询 删除
     */
    @DELETE("/api/columnManage/legalAdvice/delete")
    Call<ReplyUserBean.BaseResult<Boolean>> deleteLegalAdvice(@QueryMap Map<String, Object> map);
    /**
     * 新增全民护路
     */
    @POST("/api/columnManage/nationalRoadProtection/add")
    Call<ReplyUserBean.BaseResult<Void>> addDefendRoad(@QueryMap Map<String, Object> map);
    /**
     * 全民护路列表
     */
    @GET("/api/columnManage/nationalRoadProtection/list")
    Call<ReplyUserBean.BaseResult<BasePageListBean<DefendRoadBean>>> loadDefendRoadList(@QueryMap Map<String, Object> map);
    /**
     * 全民护路详情
     */
    @GET("/api/columnManage/nationalRoadProtection/getById")
    Call<ReplyUserBean.BaseResult<DefendRoadBean>> loadDefendRoadDetail(@QueryMap Map<String, Object> map);
    /**
     *删除全民护路
     */
    @DELETE("/api/columnManage/nationalRoadProtection/delete")
    Call<ReplyUserBean.BaseResult<Boolean>> deleteDefendRoad(@QueryMap Map<String, Object> map);
    /**
     *获取全民护路的回复列表
     */
    @GET("/api/columnManage/nationalRoadProtection/findReplyPageByDataId")
    Call<ReplyUserBean.BaseResult<BasePageListBean<CommentBean>>> loadDefendRoadReplyList(@QueryMap Map<String, Object> map);
    /**
     * 互帮互助 列表
     */
    @GET("/api/columnManage/helpEachOther/list")
    Call<ReplyUserBean.BaseResult<BasePageListBean<HelpBean>>> getHelpListData(@QueryMap Map<String, Object> map);
    /**
     * 互帮互助 新增
     */
    @POST("/api/columnManage/helpEachOther/add")
    Call<ReplyUserBean.BaseResult<Void>> addHelp(@QueryMap Map<String, Object> map);
    /**
     *  互帮互助  详情
     */
    @GET("/api/columnManage/helpEachOther/getById")
    Call<ReplyUserBean.BaseResult<HelpBean>> getHelpDetail(@QueryMap Map<String, Object> map);

    /**
     * 互帮互助 大众回复列表
     */
    @GET("/api/columnManage/helpEachOther/findReplyPageByDataId")
    Call<ReplyUserBean.BaseResult<BasePageListBean<CommentBean>>> getHelpCommentList(@QueryMap Map<String, Object> map);
    /**
     * 互帮互助 大众回复(添加)
     */
    @POST("/api/columnManage/helpEachOther/addReply")
    Call<ReplyUserBean.BaseResult<CommentBean>> addHelpComment(@QueryMap Map<String, Object> map);
    /**
     * 互帮互助 点赞(添加)
     */
    @POST("/api/columnManage/helpEachOther/addPraiseTimes")
    Call<ReplyUserBean.BaseResult<Integer>> addHelpPraise(@QueryMap Map<String, Object> map);

    /**
     * 互帮互助  关闭 不可再回复
     */
    @POST("/api/columnManage/helpEachOther/shutDownHelp")
    Call<ReplyUserBean.BaseResult<Boolean>> closeHelp(@QueryMap Map<String, Object> map);
    /**
     * 互帮互助 删除
     */
    @DELETE("/api/columnManage/helpEachOther/delete")
    Call<ReplyUserBean.BaseResult<Boolean>> deleteHelp(@QueryMap Map<String, Object> map);
    /**
     * 互帮互助 采纳
     */
    @POST("/api/columnManage/helpEachOther/adoptionReplyById")
    Call<ReplyUserBean.BaseResult<Boolean>> adoptComment(@QueryMap Map<String, Object> map);
    /**
     * 获取 我的便民诉求 列表
     */
    @GET("/api/columnManage/convenientAppeal/myList")
    Call<ReplyUserBean.BaseResult<BasePageListBean<ConvenniceAppealBean>>> getMyConvenniceAppealData(@QueryMap Map<String, Object> map);
    /**
     * 我的 问问 列表
     */
    @GET("/api/columnManage/helpEachOther/myList")
    Call<ReplyUserBean.BaseResult<BasePageListBean<HelpBean>>> getMyHelpListData(@QueryMap Map<String, Object> map);
    /**
     * 我的信访举报 列表
     */
    @GET("/api/columnManage/lettersAndCallsReport/myList")
    Call<ReplyUserBean.BaseResult<BasePageListBean<LetterBean>>> getMyLettersListData(@QueryMap Map<String, Object> map);

    /**
     *我的全民护路列表
     */
    @GET("/api/columnManage/nationalRoadProtection/myList")
    Call<ReplyUserBean.BaseResult<BasePageListBean<DefendRoadBean>>> myDefendRoadList(@QueryMap Map<String, Object> map);

    /**
     *我的爆料
     */
    @GET("/api/columnManage/brokeNews/myList")
    Call<ReplyUserBean.BaseResult<BasePageListBean<ExposureBean>>> loadMyAddExposureList(@QueryMap Map<String, Object> map);
    /**
     * 问题反馈
     */
    @POST("/api/appManage/appProblemFeedback/add")
    Call<ReplyUserBean.BaseResult<Void>> addFeedBack(@QueryMap Map<String, Object> map);

    /**
     * 启动界面配图
     */
    @GET("/api/appManage/startInterface/get")
    Call<ReplyUserBean.BaseResult<SplashBean>> getSplashData(@QueryMap Map<String, Object> map);
    /**
     * 系统通知
     */
    @GET("/api/messageManage/systemNotice/myList")
    Call<ReplyUserBean.BaseResult<BasePageListBean<MessageBean>>> getMessageNotifyListData(@QueryMap Map<String, Object> map);
    /**
     * 系统通知 删除
     */
    @DELETE("/api/messageManage/systemNotice/delete")
    Call<ReplyUserBean.BaseResult<Boolean>> deleteMessageNotify(@QueryMap Map<String, Object> map);
    /**
     *系统通知 标记已读
     */
    @POST("/api/messageManage/systemNotice/markRead")
    Call<ReplyUserBean.BaseResult<Boolean>> readMessageNotify(@QueryMap Map<String, Object> map);
    /**
     *系统通知 未读数量
     */
    @GET("/api/messageManage/systemNotice/getNotReadNum")
    Call<ReplyUserBean.BaseResult<Integer>> getNotifyUnreadNum(@QueryMap Map<String, Object> map);
    /**
     * 动态信息
     */
    @GET("/api/messageManage/systemDynamic/myList")
    Call<ReplyUserBean.BaseResult<BasePageListBean<MessageBean>>> getMessageDynamicListData(@QueryMap Map<String, Object> map);
    /**
     * 动态信息 删除
     */
    @DELETE("/api/messageManage/systemDynamic/delete")
    Call<ReplyUserBean.BaseResult<Boolean>> deleteMessageDynamic(@QueryMap Map<String, Object> map);
    /**
     *动态信息 标记已读
     */
    @POST("/api/messageManage/systemDynamic/markRead")
    Call<ReplyUserBean.BaseResult<Boolean>> readMessageDynamic(@QueryMap Map<String, Object> map);
    /**
     *动态信息 未读数量
     */
    @GET("/api/messageManage/systemDynamic/getNotReadNum")
    Call<ReplyUserBean.BaseResult<Integer>> getDynamicUnreadNum(@QueryMap Map<String, Object> map);
    /**签到*/
    @POST("/api/integralManage/userSignIn/signIn")
    Call<ReplyUserBean.BaseResult<CheckRecords>> setCheckIn(@QueryMap Map<String, Object> map);
    /**签到统计*/
    @GET("/api/integralManage/userSignIn/getSignInCount")
    Call<ReplyUserBean.BaseResult<CheckInBean>> getCheckInCount(@QueryMap Map<String, Object> map);
    /**签到历史*/
    @GET("/api/integralManage/userSignIn/myList")
    Call<ReplyUserBean.BaseResult<List<CheckRecords>>> getCheckInList(@QueryMap Map<String, Object> map);
    /**我的积分*/
    @GET("/api/integralManage/userIntegral/getMyIntegral")
    Call<ReplyUserBean.BaseResult<IntegralBean>> getMyIntegral(@QueryMap Map<String, Object> map);
}
